package java学习.第15章_File类与IO流;

import org.junit.Test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;

public class J_打印流 {
    /**
     * 打印流
     * ●实现将基本数据类型的数据格式转化为字符串输出
     * ●打印流: PrintStream 和PrintWriter
     * ➢提供了一系列重载的print()和println()方法，用于多种数据类型的输出
     * ➢PrintStream 和 PrintWriter 的输出不会抛出IOException异常
     * ➢PrintStream 和 PrintWriter 有自动flush功能
     * ➢PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。
     * 在需要写入字符而不是写入字节的情况下，应该使用PrintWriter 类。
     * ➢System.out返回的是PrintStream的实例
     */

    @Test
    public void 打印流() {

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("File\\cin.txt");
            //创建打印输出流，设置为自动刷新模式(写入换行符或字节'\n' 时都会刷新输出缓冲区)
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        q("前");
        PrintStream ps = new PrintStream(fos);
        if(ps != null){
            System.setOut(ps);//把标准输出流(控制台输出)改成文件
        }
        for (long i = 0; i <= 0b1111111111111111; i++) {
            System.out.print((char) i);
            if((i&(1023)) == 0){
                System.out.println();
            }
        }
        q("后");
    }

    private static void q(String s) {
        System.out.println(s);
    }

}
